// 测试学校切换后科目信息更新的脚本
// 模拟学校切换逻辑

const app = {
  api: {
    updateUserSchool: function(schoolId) {
      console.log('模拟调用 updateUserSchool API，学校ID:', schoolId);
      return Promise.resolve({
        code: 200,
        message: '学校更新成功'
      });
    },
    
    getUserInfo: function() {
      console.log('模拟调用 getUserInfo API');
      // 模拟返回不同学校的科目数据
      return Promise.resolve({
        code: 200,
        data: {
          id: 31,
          username: 'testuser',
          school_id: 2, // 新学校的ID
          school_name: '新学校名称',
          subjects: [
            { id: 290, name: '新科目1' },
            { id: 304, name: '新科目2' },
            { id: 306, name: '新科目3' }
          ]
        }
      });
    }
  }
};

// 模拟页面数据
const pageData = {
  data: {
    userSchoolId: 1,
    userSchoolName: '原学校',
    userSubjects: [
      { id: 340, name: '原科目1' },
      { id: 341, name: '原科目2' }
    ],
    selectedSubjectIndex: 1,
    schools: [
      { id: 1, name: '原学校', selected: true },
      { id: 2, name: '新学校', selected: false }
    ]
  },
  
  setData: function(newData) {
    console.log('页面数据更新:', JSON.stringify(newData, null, 2));
    // 模拟更新数据
    Object.assign(this.data, newData);
  },
  
  closeModal: function() {
    console.log('关闭学校选择弹窗');
  }
};

// 模拟 updateUserSchool 方法
function updateUserSchool(schoolId, schoolName) {
  const that = pageData;
  
  console.log('开始更新学校，新学校ID:', schoolId, '名称:', schoolName);
  
  // 调用API更新用户学校
  app.api.updateUserSchool(schoolId).then(res => {
    console.log('更新用户学校成功:', res);

    // 更新本地用户信息
    const userInfo = { school_id: schoolId, school_name: schoolName };
    console.log('更新本地用户信息:', userInfo);

    // 调用getUserInfo接口获取新学校的科目信息
    return app.api.getUserInfo();
  }).then(userInfoRes => {
    console.log('获取用户信息成功:', userInfoRes);
    
    // 更新页面状态
    that.setData({
      userSchoolId: schoolId,
      userSchoolName: schoolName,
      userInfo: userInfoRes.data || {},
      userSubjects: userInfoRes.data?.subjects || [],
      selectedSubjectIndex: 0, // 重置科目索引
      schools: that.data.schools.map(item => ({
        ...item,
        selected: item.id === schoolId
      }))
    });

    console.log('学校切换成功，显示成功提示');

    // 关闭弹窗
    that.closeModal();
    
    console.log('学校切换完成，最终页面数据:');
    console.log('- 当前学校ID:', that.data.userSchoolId);
    console.log('- 当前学校名称:', that.data.userSchoolName);
    console.log('- 科目数量:', that.data.userSubjects.length);
    console.log('- 科目列表:', that.data.userSubjects.map(s => s.name).join(', '));
    console.log('- 当前选中科目索引:', that.data.selectedSubjectIndex);
  }).catch(err => {
    console.error('更新用户学校失败:', err);
    console.log('显示失败提示');
  });
}

// 执行测试
console.log('=== 测试学校切换功能 ===');
console.log('切换前状态:');
console.log('- 当前学校ID:', pageData.data.userSchoolId);
console.log('- 当前学校名称:', pageData.data.userSchoolName);
console.log('- 科目数量:', pageData.data.userSubjects.length);
console.log('- 科目列表:', pageData.data.userSubjects.map(s => s.name).join(', '));
console.log('- 当前选中科目索引:', pageData.data.selectedSubjectIndex);

console.log('\n开始切换到学校ID=2...');
updateUserSchool(2, '新学校名称');